iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0

經過前幾天的主角製作介紹,相信大家對於主角的程式有更深入的了解吧!接下來我們即將進入到怪物的部分,首先今天將為大家介紹製作怪物的動畫,以及如何在程市當中呼叫動畫。

一開始我們需要將美術人員所畫好的Sprite sheet匯入Unity專案當中,記得一定要好好的將所有檔案分類在適當的資料夾當中,不然專案逐漸擴大時,可能就會找不到檔案喔!接著點選Sprite sheet的圖,可以看到Inspector有許多選項可以對這張來做設定。由於Sprite sheet是連續圖,所以現在我需要將Sprite sheet做切割,因此我們要點選Sprite Editor。
https://ithelp.ithome.com.tw/upload/images/20200914/201304149QjiNi6iFq.png

進入到Sprite Editor之後,點選Slice裡面的Type會有三中選項

  • Automatic
  • Grid By Cell Size
  • Grid By Cell Count

通常我都是用Grid By Cell Count,因為我從開始接觸Unity時就都使用這個選項了,加上我們的美術都會先將每張圖排列整齊,所以使用數量來切圖就可以了,當然正在開發中的各位也可以試試其他的方法來切割圖片。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414MRW9KvnBqz.png

既然選擇了Grid By Cell Count就要告訴它Column&Row,以這張圖下方這張圖為例,總共是6欄2行,填入之後按下Slice,就會自動幫你將連續圖切成一張一張圖,是不是很方便,最後要記得點選右上角的Apply喔。
https://ithelp.ithome.com.tw/upload/images/20200914/201304146CDFkS8Lw2.png

我們再到Assets裡找到剛剛進行切圖的Sprite Sheet,會發現圖片的右邊多了一個箭頭,點開之後就是我們剛剛切完圖的每張Sprite,接下來我們就要將這些Sprite放到animation裡面。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414neqsypfrBN.png

來到Animation將每個Sprite都拖進時間軸裡面,在這裡可以設定每個Sprite之間需要間隔多少時間,切記要做任何動作時都要先按左上紅色圓圈圈的箭頭才會開始錄製喔,不然先前做的動作都會白費了,結束之後再按一下紅色箭就完成錄製了。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414W4gwRc8jUr.png

接著看到Animator,發現剛剛所製作的Animation都已經加入到Animator了,再來我們就是需要準確地控制這些動畫。在每個動畫之間加上箭頭,也就是動畫流程,之後我們要為這些箭頭加入條件,當條件成立,箭頭才會運作。我們可以看到下方這張圖加號的地方,點開會有一些條件選項,可以選擇適合的條件方式,並將它命名,之後加到箭頭時就會有這些選項了。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414AbUzYWIoAF.png

那要如何加入這些條件呢?首先我們先點選箭頭,發現Inspector裡會有一些動作的轉換條件,像是是否需要結束時間(等待目前的動作完成才接下一個動作),或是動畫之間時間的調配等等,那最下面有一個Conditions,就可以加入我們所需要的條件,如果是Bool的話,會需要設定這個流程是要在true還是false的時候執行,那如果是Trigger的話則不需要,大家也可以試試其他的條件方式。
https://ithelp.ithome.com.tw/upload/images/20200914/20130414dvs34r284r.png

最後就是如何在程式裡面呼叫動畫了,我自己習慣的做法是先宣告Animator,之後在適當的條件下加入設定動畫控制器參數的程式碼。

宣告Animator

  • private Animator animator;
  • animator = GetComponent();

設定動畫控制器參數

  • animator.Setbool(“Walk”,false);
  • animator.SetTrigger(“Dead”);

以上就是今天的怪物動畫實作,相信大家對動畫的製作有一定的了解了,在之後的怪物程式中還會再提到動畫流程的條件,請大家盡請期待。


上一篇
[Day15] 主角-攻擊
下一篇
[Day17]尖刺怪-追蹤主角、受傷
系列文
Unity遊戲開發與實踐-BlueRemedy內容分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言